package com.darren.archive.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.darren.archive.enums.Gender;
import com.darren.archive.utils.fastjson.FastJsonEnumDeserializer;
import com.darren.archive.utils.fastjson.FastJsonEnumSerializer;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import lombok.Data;

/**
 * @Description: 系统用户表
 * @Author: 周金涛
 * @Date: 2019-09-09 12:38:41
 * Table: sys_user
 */
@Data
@ApiModel(value = "系统用户表")
public class SysUser implements Serializable {
    /**
     * 主键id
     */
    @ApiModelProperty(notes = "主键id")
    private Long id;

    /**
     * 账号，用于登陆验证
     */
    @ApiModelProperty(notes = "账号，用于登陆验证")
    private String userAccount;

    @JSONField(serializeUsing = FastJsonEnumSerializer.class, deserializeUsing = FastJsonEnumDeserializer.class)
    private Gender sex;

    /**
     * 密码，用于登陆验证
     */
    @ApiModelProperty(notes = "密码，用于登陆验证")
    private String password;

    /**
     * 姓名
     */
    @ApiModelProperty(notes = "姓名")
    private String userName;

    /**
     * 身份证号码
     */
    @ApiModelProperty(notes = "身份证号码")
    private String idCard;

    /**
     * 手机号码
     */
    @ApiModelProperty(notes = "手机号码")
    private String mobile;

    /**
     * 性别：男/女，默认空字符串
     */
    @ApiModelProperty(notes = "性别：男/女，默认空字符串")
    private String gender;

    /**
     * 出生日期
     */
    @ApiModelProperty(notes = "出生日期")
    private Date birthday;

    /**
     * 联系地址
     */
    @ApiModelProperty(notes = "联系地址")
    private String address;

    /**
     * 邮政编码
     */
    @ApiModelProperty(notes = "邮政编码")
    private String postalCode;

    /**
     * 电子邮箱地址
     */
    @ApiModelProperty(notes = "电子邮箱地址")
    private String email;

    /**
     * 组织机构id
     */
    @ApiModelProperty(notes = "组织机构id")
    private Long departmentId;

    /**
     * 固定电话号码
     */
    @ApiModelProperty(notes = "固定电话号码")
    private String telephone;

    /**
     * 用户头像,存储的头像文件路径，可以是URL
     */
    @ApiModelProperty(notes = "用户头像,存储的头像文件路径，可以是URL")
    private String photo;

    /**
     * 标记内置超级用户，用户列表不显示，1 超级用户，0 普通用户，默认 0
     */
    @ApiModelProperty(notes = "标记内置超级用户，用户列表不显示，1 超级用户，0 普通用户，默认 0")
    private boolean admin;

    /**
     * 是否启用，1 启用，0 禁用，默认 1
     */
    @ApiModelProperty(notes = "是否启用，1 启用，0 禁用，默认 1")
    private boolean enable;

    /**
     * 备注（个性签名）
     */
    @ApiModelProperty(notes = "备注（个性签名）")
    private String remark;

    /**
     * 创建时间
     */
    @ApiModelProperty(notes = "创建时间")
    private Date createTime;

    /**
     * 创建这条数据的用户ID
     */
    @ApiModelProperty(notes = "创建这条数据的用户ID")
    private Long createBy;

    /**
     * 修改时间
     */
    @ApiModelProperty(notes = "修改时间")
    private Date modifiedTime;

    /**
     * 最后修改这条数据的用户ID
     */
    @ApiModelProperty(notes = "最后修改这条数据的用户ID")
    private Long modifiedBy;

    /**
     * 标记是否删除，1 删除，0 未删除，默认 0
     */
    @ApiModelProperty(notes = "标记是否删除，1 删除，0 未删除，默认 0")
    private boolean deleted;

    private static final long serialVersionUID = 1L;
}